﻿
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;

namespace GKS.BusinessManagementHelper.DataLayer {
    using System;

    public class User {
        #region variables

        #endregion

        #region properties
        /// <summary>
        /// Get or Set the ID of this User.
        /// </summary>
        public Guid Id { get; set; }

        /// <summary>
        /// Get or Set the first name of this User.
        /// </summary>
        public string FirstName { get; set; }

        /// <summary>
        /// Get or Set the last name of this User.
        /// </summary>
        public string LastName { get; set; }

        /// <summary>
        /// Get or Set the full name of this User.
        /// </summary>
        public string FullName { get; set; }

        /// <summary>
        /// Get or Set the username of this User.
        /// </summary>
        public string Username { get; set; }

        /// <summary>
        /// Get or Set the password of this User.
        /// </summary>
        public string Password { get; set; }

        /// <summary>
        /// Get or Set the date of birth of this User.
        /// </summary>
        public DateTime DateOfBirth { get; set; }

        /// <summary>
        /// Get or Set the email address of this User.
        /// </summary>
        public string Email { get; set; }

        /// <summary>
        /// Get or Set the creation date of this User.
        /// </summary>
        public DateTime CreatedIn { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public User CreatedBy { get; set; }
        public DateTime LastUpdate { get; set; }
        public User UpdatedBy { get; set; }
        #endregion

        #region enums

        #endregion

        #region constructors
        public User() {
            CreatedIn = DateTime.Now;
            LastUpdate = DateTime.Now;
            Id = Guid.NewGuid();
        }

        public User(string firstName, string lastName, string username, string password) : this() {
            FirstName = firstName;
            LastName = lastName;
            FullName = string.Format("{0} {1}", firstName, lastName);
            Username = username;
            Password = password;
        }

        public User(string firstName, 
                    string lastName, 
                    string username, 
                    string password, 
                    DateTime dateOfBirth) : this(firstName, lastName, username, password) {
            DateOfBirth = dateOfBirth;
        }

        public User(string firstName,
                    string lastName,
                    string username,
                    string password,
                    DateTime dateOfBirth,
                    string email) : this(firstName, lastName, username, password, dateOfBirth) {
            Email = email;
        }
        #endregion

        #region methods

        #endregion
    }
}
